
function [] = main()
    tic()
    boundaries = [0 0];
    mobileSpeed = 1;
    snr = 20;
    mobilityStrategy = cdmapc.impl.RandomWalkMobilityStrategyImpl(boundaries, mobileSpeed);
    baseStation = cdmapc.impl.DummyBaseStationImpl(boundaries);
    system = signal.impl.GaussianSystemImpl(snr);
    reverseLink = cdmapc.impl.IS95AccessChannelReverseLinkImpl(baseStation, system);
    reverseLinkPowerControlStrategy = cdmapc.impl.IS95ReverseLinkPowerControlStrategyImpl(reverseLink);
    handoffManager = cdmapc.impl.NoOpHandoffManagerImpl();
    mobile = cdmapc.impl.SimpleMobileImpl(mobilityStrategy, reverseLinkPowerControlStrategy, handoffManager);
    powerControlReportOutput = cdmapc.impl.SimplePlotReportOutputImpl();
    powerControlReporter = cdmapc.impl.SimplePowerControlReporterImpl(powerControlReportOutput);
    mobilityReportOutput = cdmapc.impl.SimpleSequentialPlotReportOutputImpl();
    mobilityReporter = cdmapc.impl.SimpleMobilityReporterImpl(mobilityReportOutput);
    decoratedMobile = cdmapc.impl.ReportDecoratedMobileImpl(mobile, powerControlReporter, mobilityReporter);
    reverseLinkPowerControlStrategy.applyStrategy(decoratedMobile);
    figure('name', 'Movilidad');
    mobilityReporter.debrief();
	figure('name', 'Control de potencia');
    powerControlReporter.debrief();
end % function
